Stylus ink parameter setting

ABSTRACT

A method can include, during execution of an application with drawing capabilities, recognizing input received via a microphone; setting a stylus ink parameter based on the recognized input; receiving drawing input via a stylus; and, via the application, rendering a graphical user interface to a display according to the stylus ink parameter and the drawing input.

TECHNICAL FIELD

Subject matter disclosed herein generally relates to styli for devices.

BACKGROUND

Various types of devices may include a stylus, for example, tofacilitate input.

SUMMARY

A method can include, during execution of an application with drawingcapabilities, recognizing input received via a microphone; setting astylus ink parameter based on the recognized input; receiving drawinginput via a stylus; and, via the application, rendering a graphical userinterface to a display according to the stylus ink parameter and thedrawing input. Various other apparatuses, systems, methods, etc., arealso disclosed.

BRIEF DESCRIPTION OF THE DRAWINGS

Features and advantages of the described implementations can be morereadily understood by reference to the following description taken inconjunction with examples of the accompanying drawings.

FIG. 1 is a series of diagrams of an example of a device and examples ofarrangements of components;

FIG. 2 is a diagram of an example of a system and an example of adrawing workflow;

FIG. 3 is a diagram of an example of a system and an example of adrawing workflow;

FIG. 4 is a block diagram of an example of a method;

FIG. 5 is a series of diagrams of examples of devices and an example ofa stylus;

FIG. 6 is a series of diagrams of an example of a stylus;

FIG. 7 is a block diagram of an example of a method;

FIG. 8 is a series of diagrams of an example of a system and examples ofcomponents of a system;

FIG. 9 is a table of examples of parameters;

FIG. 10 is a series of diagrams of an example of a system, an example ofa method, and an example of a data structure;

FIG. 11 is a block diagram of an example of a method; and

FIG. 12 is a diagram of an example of a system that includes one or moreprocessors.

DETAILED DESCRIPTION

The following description includes the best mode presently contemplatedfor practicing the described implementations. This description is not tobe taken in a limiting sense, but rather is made merely for the purposeof describing general principles of various implementations. The scopeof invention should be ascertained with reference to issued claims.

FIG. 1 shows an example of a device 101 and examples of arrangements ofphysical panels 102 and 103 that may, for example, be included in thedevice 101. Each of the arrangements 102 and 103 is shown along with aCartesian coordinate system that includes x, y and z axes. Variousfeatures of the device 101 and the arrangements 102 and 103 mayoptionally be described with respect to the Cartesian coordinate system.For example, length (e.g., along an x-axis), width (e.g., along ay-axis), depth (e.g., along a z-axis), aspect ratios, relationshipsbetween features, etc. may be described with respect to the Cartesiancoordinate system.

In FIG. 1, the device 101 includes a display 104, one or more processors105, memory 106, an operating system 107 (e.g., or operating systems)and one or more applications 108. In the example of FIG. 1, a stylus 140may be used to input information such as, for example, commands,selections, digital ink, etc. As an example, an operating systemenvironment may be established by executing instructions of theoperating system 107 stored in the memory 106 of the device 101 using atleast one of the one or more processors 105. In such an example, theoperating system environment 107 may call for rendering information tothe display 104, receiving and processing input via a surface (e.g., asurface of the display 104) using a stylus (e.g., the stylus 140), etc.As an example, an application may be executable in an establishedoperating system environment, for example, to provide for drawing,handwriting recognition, photo editing, etc. through, in part, use of astylus.

In FIG. 1, the example arrangement 102 includes a panel 112, anelectromagnetic digitizer panel 122, electromagnetic digitizer circuitry120, an LCD and/or LED panel display 132 with associated drivercircuitry 130, and the stylus 140. While LCD may be an acronym for“liquid crystal display”, LCD finds uses as “LCD display”, for example,as an adjective for “display” (e.g., a type of display). LED is anacronym for “light emitting diode”. As an example, a display may includea panel that includes LEDs (e.g., an LED panel display).

In the arrangement 102, the panel display 132 is disposed at least inpart between the panel 112 and the electromagnetic digitizer panel 122.In such an example, fields are transmitted through the panel display132.

In the arrangement 102, as an example, energy may be induced in resonantcircuitry 141 of the stylus 140 by a field generated by theelectromagnetic digitizer panel 122. The resonant circuitry 141 of thestylus 140 may then make use of this energy to return a signal to theelectromagnetic digitizer panel 122 where input signals may determine,for example, one or more of coordinate position, angle, speed, writingpressure, etc. As shown in FIG. 1, circuitry may be configured to switcha field on and off and to receive input signals. For example, the EMdigitizer circuitry 120 may include or be operatively coupled to a highfrequency source 123, a transmission and reception switch 125 (e.g., acoil switch) and a receiver 127.

As an example, an electromagnetic digitizer panel may include a sheetmanufactured from glass epoxy resin or from a polyimide and PET formedfilm in which a large number of overlapping loop coils are arranged in amatrix in the x and y axis directions.

As an example, the circuitry 120 may discharge alternating current toselected loop coils from among the array of the electromagneticdigitizer panel 122 to excite the coils, causing them to generatefields. When the stylus 140 passes through these fields, it may pick upand store energy in its resonant circuitry 141. As an example, thecircuitry 120 may detect an approximate location of the stylus 140, forexample, by scanning the loop coils, which may include scanning multipleloop coils in the vicinity of approximate location of the stylus 140 todetermine coordinate values more precisely.

In the arrangement 102, a location of the stylus 140 may be determined,for example, where the stylus 140 may be positioned a short distancefrom the electromagnetic digitizer panel 122 (e.g., an effectiveoperational distance).

As an example, the circuitry 120 may include a digital signal processing(DSP) circuit for processing input. As an example, the circuitry 120 maybe operatively coupled to a processor of a device (e.g., CPU, etc.). Asan example, the circuitry 120 may include a DSP circuit and beoperatively coupled to a processor of a device such as one of the one ormore processors 105 of the device 101.

In FIG. 1, the example arrangement 103 includes a panel 112, an LCDand/or LED display panel 132 and associated driver circuitry 130 as wellas an active capacitive panel 136, associated driver circuitry 138 andthe stylus 140.

As shown in the arrangement 103, the stylus 140 can include circuitry143 and a power source 145 (e.g., a battery). As an example, a styluswith a power source may optionally be implemented for the arrangement102. Where a stylus includes a power source, the stylus may optionallyinclude circuitry such as, for example, BLUETOOTH™ circuitry wheresignals may be communicated to a device that includes BLUETOOTH™circuitry (e.g., the device 101 may include BLUETOOTH™ circuitry).

In the arrangement 103, the panel 136 can include translucent (e.g.,“transparent”) circuitry, for example, consider a panel that includecircuitry formed at least in part of indium-tin-oxide (ITO). In such anexample, visible electromagnetic emissions of the display panel 132(e.g., as rendered via circuitry of the device 101) may be readily seenthrough the panel 136.

As an example, the panel 136 can include sensors that can sense changesin electrical current generated by proximity of an object such as afinger of a hand, an object that can cause changes in electrostaticcapacity (e.g., load), etc. Such sensors may respond to presence ofstatic electrical capacity of a finger as it approaches the panel. As anexample, the panel 136 may include one or more types of circuitry. Forexample, consider surface capacitive circuitry and/or projectivecapacitive circuitry.

As an example, a panel can include drive electrodes and receiveelectrodes. In such an example, charge may be provided to the driveelectrodes such that electric fields are formed with respect to thereceive electrodes. The electric fields may be referred to as a“projected” electric field (e.g., projected capacitance of “p-cap”).

As an example, a projected electric field may be available for “fieldcoupling” by introduction of a conductive object (e.g., a hand, astylus, etc.). For example, a portion of a projected electric field maycouple with a conductive object, which leaves a remaining portion of theprojected electric field coupling with one or more receive electrodes.In such an example, the field coupling with the conductive object actsto reduce charge collected by a receive electrode or receive electrodes.In turn, the collected charge may be used as an indicator of theconductive object being at or near a particular surface location on thepanel (e.g., a particular x,y location in an x,y-plane).

As to techniques for measuring collected charge, as an example, anintegrator may be implemented that integrates collected charge withrespect to time. In such an example, drive electrodes may be drivenusing time pulses (e.g., regular approximately square wave pulses). Sucha technique may act to help discriminate touches from noise, etc. As anexample, a change in collected charge may be deemed a change incapacitance, for example, as a conductive object may introduce parasiticcapacitance to circuitry of a touchscreen.

As an example, the panel 136 may include a conductive layer etched toform an x-y grid that can be driven by, for example, drive lines (e.g.,running along the y direction) and where sensing may occur along senselines (e.g., running along the x direction).

In such an example, the panel 136 may mutual include capacitive sensors(e.g., a capacitor at each intersection of each row and each column). Asmentioned, charge (e.g., voltage) may be applied to the drive lines suchthat bringing a conductive object near one or more of the capacitivesensor changes the projected electric field in a localized manner thatreduces mutual capacitance. For example, the capacitance change atindividual points on a grid may be measured to determine a touchlocation (e.g., or touch locations) by measuring voltage (e.g.,collected charge).

A mutual capacitance method may include providing drive electrodes andreceive electrodes organized as a matrix (e.g., an array) and measuringcapacitive coupling at points in the matrix, which, in turn, in thepresence of a touch or touches, may act to locate the touch or toucheswith respect to the matrix.

As to the circuitry 138, in the example of FIG. 1, it may include asignal source operatively coupled to the drive lines of the panel 136, amultiplexer operatively coupled to the sense lines of the panel and ananalog-to-digital converter (ADC), for example, to convert sensed analogsignals of the sense lines received via the multiplexer to digitalsignals. As an example, the circuitry 138 may include digital signalprocessing (DSP) circuitry that can receive digital signals and provideoutput based at least in part on digital signal processing. As anexample, DSP circuitry may receive an output array from the circuitry138 where values in the array represent capacitance at, for example, x-yintersections of a mutual capacitance grid of the panel 136.

As mentioned, the stylus 140 may include the power source 145. In suchan example, the circuitry 143 may emit an electrostatic signal (e.g., orother signals) that can be sensed by sense lines. For example, thecircuitry 143 may include one or more antennas (e.g., coils, etc.) thatcan emit an electrostatic signal (or electrostatic signals). As anexample, a junction or junctions of drive and sense lines (e.g.,intersections of rows and columns) may receive signals emitted by thecircuitry 143 of the stylus 140, which may be correlated to position ofthe stylus 140. Such an approach may be referred to as an “activecapacitive” approach as the stylus 140 is “active” in that it can emitan electrostatic signal as generated at least in part via energy fromthe power source 145.

As an example, a stylus that includes a power source may includecircuitry that can emit signals where one or more parameters of thesignals may differ. In such an example, a particular signal maycorrespond to a command, for example, received and processed by a devicesuch as the device 101 of FIG. 1. As an example, a stylus may includeone or more buttons that may be actuatable (e.g., depressible, etc.) tocause circuitry of the stylus to emit a particular signal. As anotherexample, consider a nib of a stylus that can respond to pressure uponcontact of the nib with a surface. In such an example, the stylus mayemit one or more signals that carry pressure information (e.g., how muchpressure is being applied to the nib).

As an example, an active capacitive digitizer may be operative viacircuitry that can also sense touch (e.g., a human finger, etc.). Forexample, an active capacitive digitizer may operate via drive and senselines that can also be implemented to sense touch. In the arrangement102, where touch sensing is desired, another panel may be included,which may increase device size, weight, etc.

As an example, a device may be operable in conjunction with anelectrostatic stylus that may not include a power source and/or may beoperable in conjunction with an electrostatic stylus that may include apower source (e.g., one or more batteries).

As an example, a stylus may include a conductive capacitor that canreceive energy emitted by an electromagnetic field of a device (e.g.,via an excitation coil, etc.). In such an example, one or morefrequencies (e.g., of electromagnetic waves) may be controllable via adevice. As an example, such a stylus may be considered to be a parasiticstylus as it derives its power from being in proximity to a device thatemits electromagnetic energy.

As an example, a stylus may include a power source (e.g., one or morebatteries). As an example, such a stylus may be considered to be anactive stylus as it derives its power at least in part from an internalpower source (e.g., an electrochemical power source). As an example,circuitry of a device may identify position of a stylus based at leastin part via emissions of the stylus where such emissions are powered bya power source of the stylus. In such an example, the stylus may emitenergy as to one or more other types of “information”. For example,where a stylus includes a nib that can be pressed against a surface, thenib may be operatively coupled to a pressure circuit that may sensepressure, displacement, etc. In such an example, the stylus may emitenergy that carries “pressure” information (e.g., a pressure level,etc.).

As an example, a stylus may include one or more buttons. As an example,a stylus that includes a power source (e.g., one or more batteries) mayinclude one or more buttons. In such an example, a button may beactuated to cause circuitry powered by the power source to emit energy.Such energy may be sensed by a device and, for example, be processed asa command. As an example, a command may call for performing a functionby the device. In such an example, the button may have a dedicatedfunction. As an example, a function of such a button may be fixed (e.g.,fixed via circuitry, optionally “hardwired”, etc.) or may be assignable,for example, via a graphical user interface (GUI) that may be renderedto a display of a device.

FIG. 2 shows an example of a system 200 that can be utilized via a humanhand 203 where the system 200 includes a computing device 210 and astylus 240. As shown, the computing device 210 includes a display 214that can render a graphical user interface (GUI) 220 of an applicationthat executes using an operating system environment established by thecomputing device 210. In the example of FIG. 2, the application is adrawing application such as, for example, the VISIO drawing application(Microsoft Corporation, Redmond, Wash.).

As shown, the GUI 220 includes a region 221 for making drawings (e.g., adrawing panel or window), for example, by moving a nib of the stylus 240across the display 214 in the region 221. In such an example, thedrawing application can provide for various color options as to variousdrawing features such as lines, letters, objects, etc. In the example ofFIG. 2, a GUI 224 is rendered to the display 214 that provides variousoptions for a line, which can include colors, weights, dashes, arrows,etc. As shown, the GUI 224 occupies a considerable portion of the areaof the region 221 (see, e.g., Δx and Δy). As such, the GUI 224 may covera portion of a drawing and/or discourage a user from utilizing a portionof the region 221, discourage use of colors, etc.

In the example of FIG. 2, where a user desires use of multiple colors tomake a color drawing in the region 221, a workflow can involve multipleback-and-forth hand actions as represented by the thick double-headedarrow. For example, the user's hand 203 can draw a line by moving thenib of the stylus 240 across the display 214 (see “A”), then move thenib of the stylus 240 to a menu region 222 (e.g., a ribbon) of the GUI220 (see “B”), navigate a menu in the menu region 222 to select “Line”using the nib of the stylus 240 (see “C”), which causes the GUI 224 tobe rendered to the display 214, and then move the nib of the stylus 240to a desired color within the GUI 224 to thereby select that color for aline drawn or to be drawn (see “D”). Thus, a user may have to move thenib of the stylus 240 to multiple positions and make multiple selections(e.g., one or more selections at each of the multiple positions). Suchan approach can be inefficient, with respect to time, ergonomics and auser's attention (e.g., focus). As shown, each lift, position andtouch/select can take time, can cause strain on a user'sarm/wrist/hand/fingers, can demand visual acuity that may strain auser's eyes, and can detract a user from focusing on an intended task(e.g., making a drawing, editing, etc.).

In the example of FIG. 2, the GUI 224 shows various color options, whichcan be RGB color model options and may include gradations, intensityvariations, etc. As shown, a color matrix can be rendered in the GUI 224along with other color options such as variant colors and standardcolors. As shown, a “More Colors” options exists where a color wheel, acolor hexagon, a color cone, a double cone, or a color block (e.g., acolor cube, etc.) may be rendered in one or more color model spaceswhere the user can via the hand 203 move the nib of the stylus 240 toselect a desired color for a line.

In various instances, a user may want to make a drawing with few colors,such as a drawing with standard colors, while, in other instances, auser may want to make a drawing with many colors. As an example, in someinstances a user may want to make a drawing without knowing what colorsshe wants to use a priori, while in other instances, a user may want tomake a drawing using colors known a priori.

As an example, colors can be assigned names, which may be descriptive ornot descriptive. For example, the color “red” may be assigned the name“red” or, for example, “color 1”. In American English, some examples ofcolor names include the following twenty-four colors (e.g., includingblack, white and gray or grey): red, orange, yellow, green, blue,purple, brown, magenta, tan, cyan, olive, maroon, navy, aquamarine,turquoise, silver, lime, teal, indigo, violet, pink, black, white, grayor grey. “Primary colors” can be red, yellow and blue or, for example,red, green and blue (e.g., for displays) or, for example, magenta,yellow and cyan (e.g., for printers, etc.).

As mentioned, color can be defined using a color model (e.g., a colormodel space or simply color space). Some examples include RGB (red,green, blue), HSL (hue, saturation, luminosity), and HSV (hue,saturation, value).

As to HSV, hue, in a color wheel, the basic color ranges from 0 to 360degrees where both 0 and 360 degrees are red. For example, consider acolor wheel where red is 0 degrees, yellow is 60 degrees, green is 120degrees, cyan is 180 degrees, blue is 240 degrees, and magenta is 300degrees. As to saturation, it can define how pure (e.g., versus dull) acolor is, for example, ranging from 0 to 100, where 100 is fullysaturated and 0 is gray. As to luminosity, it can define how light acolor is, for example, ranging from 0 to 100, where 100 is as light aspossible (white, regardless of the hue and saturation) and 0 is as darkas possible (black).

As to various WINDOWS OS frameworks, a colors class method exists, whichis defined in the System.Windows.Media namespace, with an assemblyPresentationCore.dll, which can be utilized in the C #programminglanguage to implement a set of predefined colors (e.g., “public sealedclass Colors”). In the “Colors class”, colors are represented based onthe UNIX X11 named color values, which can include associatedhexadecimal values. As an example, a HTML type of color coding may beutilized.

FIG. 3 shows an example of a system 300 that can be utilized by a user301 via a human hand 303 of the user 301 and a human voice of the user301 via voice circuitry 360 where the system 300 includes a computingdevice 310 and a stylus 340. Such a system may help to save time,improve ergonomics, improve user attention, etc. As shown, the computingdevice 310 includes a display 314 that can render a graphical userinterface (GUI) 320 of an application that executes using an operatingsystem environment established by the computing device 310. In theexample of FIG. 3, the application is a drawing application such as, forexample, the VISIO drawing application (Microsoft Corporation, Redmond,Wash.); noting that one or more other types of applications may beimplemented using the system 300.

As shown, the system 300 includes the voice circuitry 360, which can be,in part or in whole, within the computing device 310, within the stylus340, within a remote computing system (e.g., cloud-based resources,etc.), etc.

In the example of FIG. 3, the GUI 320 is shown as including a graphic330, which may be optional and renderable within the GUI 320 and/or toanother portion of the display 314. In the example of FIG. 3, thegraphic 330 may be a graphical user interface, for example, with one ormore graphical controls or, for example, it may be a graphic that is notselectable, adjustable, interactive, etc. As an example, the graphic 330may be a ribbon (e.g., and/or within a ribbon region).

In the example of FIG. 3, the user 301 can change line color on-the-flyoptionally without lifting the nib of the stylus 340 from the display314. For example, the user may utter a color (e.g., “red”, “red pen”,etc.) where the voice circuitry 360 causes the application to change theline color. Such an approach may be implemented without rendering of thegraphic 330. However, where a user forgets one or more names of colors,the graphic 330 may be rendered to the display 314, for example, as ahint or help feature. As an example, the graphic 330 may be utilizedwhere the voice circuitry 360 does not fully comprehend an utterance ofa user. For example, consider two colors that have similar phonetics(e.g., dark green and dark gray) where the graphic 330 may be renderedwith the two possible colors such that a user knows to repeat the nameof the color more clearly. As an example, where a color uttered does notmatch a known color (e.g., or available color), a graphic may berendered to notify the user that there is no available color match.

In comparison to the GUI 224 of the example of FIG. 2, the graphic 330,if rendered, may occupy considerably less area than the GUI 224 and maybe rendered in a manner where it does not occupy an area where a drawingis likely to be within a region 321. As an example, the drawing can bespecified using data such as, for example, ink data (e.g., InkML data,etc.). As shown in FIG. 3, the graphic 330 may be rendered as a stripthat may be minimal in its top to bottom dimensions and may bescrollable from left to right and right to left, optionally using thevoice circuitry 360. As shown, a color may be rendered with thecorresponding name of the color (e.g., an assigned color name). In suchan example, a user can readily comprehend the color and its name. As anexample, text, if rendered within a color block, can be automaticallyrendered in a color that provides for suitable contrast. For example, ared color block would not use red color for text; rather, for example,black or white may be utilized.

In the example of FIG. 3, the graphic 330 includes color linings performer 37 CFR 2.52(e), which is referenced in the Federal Register, Vol.64, No. 173, Wednesday, Sep. 8, 1999, where red or pink are representedusing vertical black lines on white ground, blue is represented usinghorizontal black lines on white ground, violet or purple are representedusing vertical brick pattern white lines on black ground, and yellow orgold are represented using horizontal hatch (crossed) black lines onwhite ground. In FIG. 3, a legend 331 provides for ease ofidentification of some examples of colors. Various other colors mayappear in a graphic. And, as mentioned, a graphic may include text suchas the name or names of colors. For example, consider the graphic 333,which includes text, which may be selected to be in a color that matchesthe name of a color or be selected to be in a color that contrasts witha background color that may be a desired color (e.g., corresponding tothe name of a color).

As mentioned, the graphic 330 may be scrollable such that more colorscan be rendered via scrolling. As an example, colors may be selected fora color palette a priori by a user and/or by a user selecting a theme.As an example, a default palette can be a standard color palette withnames that would be likely to be understood and used by a user.

As an example, color names can be translated, as appropriate, forexample, where a user changes a language setting of a computing device,an application, etc.

As to a workflow, in the example of FIG. 3, the user 301 may draw a lineby moving the nib of the stylus 340 across the display 314 and utter acolor where the color is immediately selected and implemented such thatthe line color changes for a portion of the line being drawn where theutterance was made. For example, the voice circuitry 360 can mark a timewhere an utterance is received via one or more microphones (e.g., amicrophone, a microphone array, etc.) and then associate that markedtime with a time of an application that corresponds to an x,y coordinateof the nib of the stylus 340 on the display 314 (e.g., in the region321). In such an example, a slight time delay may exist between themarked time and the change of the line (e.g., portion thereof) as thevoice circuitry 360 associates the utterance with an appropriate color.

As an example, the voice circuitry 360 may operate in one or more modes.For example, the aforementioned workflow can be for an on-the-fly modewhere a line can be drawn with multiple colors using voice commands(e.g., utterances). As an example, another mode can be utilized suchthat a voice command applies a color to any continuously drawn feature.For example, consider a whole mode where once the user utters a colorwhile drawing a line, upon recognition of the color, the entire line isrendered using that color. As an example, a mode may be controlled byusing a button, a word, etc. For example, consider “whole red” for thewhole mode or “segment red” for the on-the-fly mode. Such shortutterances can allow a user to concentrate on a drawing without beingdistracted by large color selection GUIs (see, e.g., the GUI 224 of FIG.2) and, optionally without having to lift a nib of a stylus from adisplay.

As mentioned, various parameters can be associated with a tool such as astylus. For example, consider a drawing style such as, for example, pen,brush, etc. As an example, the voice circuitry 360 can include featuresfor changing style of a stylus using an utterance (e.g., “pen”, “brush”,etc.). As an example, details of a style may be controlled via voice(e.g., “pen size 9”, “brush size 8”, etc.).

As an example, an approach as in the example of FIG. 3 can help toaddress problems with users finding, accessing, etc., location of astylus parameters menu (e.g., ribbon, etc.) for changing one or morestylus parameters. As an example, the approach of FIG. 3 can help tominimize a need for rendering a menu, a ribbon, etc., to a display,which may provide for additional working space. For example, considerthe region 222 of the display 214 of FIG. 2 being hidden, as shown inthe example of FIG. 3. As shown, the region 321 in the example of FIG. 3is greater than the region 221 in the example of FIG. 2.

As an example, a method can include automatically changing color (e.g.,ink color) without having to render and/or expand a ribbon (e.g., amenu, etc.). In such an example, a system can via voice circuitry selectan ink color even when an application ribbon is collapsed (e.g., ribbonregion not rendered, not fully rendered, etc.).

As an example, a system can include circuitry that allows voice commandsto control a stylus tool and/or color. For example, consider one or moreof “Select blue Pen”/“Blue pencil”/“YellowHighlighter”/“Pen”/“Pencil”/“Green”/etc. In such an example, once a userspecifies the command, the meaning (intent) of the voice command can beextracted and processed to identify a stylus tool and/or color changerequested. Once extracted, as an example, UIAutomation can be used tonavigate (e.g., control) an application menu(s) to select the requestedtool and/or color. For example, in an OFFICE application, if a ribbonmenu is collapsed, the ribbon may be expanded (e.g., navigated withoutrendering), the “draw” tab selected, where a Color/Tool is matched tothe phrase specified by the user and is selected.

As an example, a voice-based approach can be enabled in one or moreapplications that support changing of a stylus tool (e.g., pen, pencil,brush, etc.) and color. As an example, a method can include notifying auser by rendering a sound, a graphic, etc., if a tab including stylustool and/or color is not available. As an example, a method can includenotifying that a requested color or tool is not available.

As an example, voice circuitry may be enabled upon activation of astylus. For example, where a stylus is stationary, docked, powered-off,etc., voice circuitry may enter a non-listening mode as to audio waves.In such an example, a user's privacy and/or that of others may berespected. As an example, voice circuitry may be implemented using awaiting mode where, in the waiting mode, the voice circuitry actsresponsive to a key word or phrase (e.g., “hello stylus”). In responseto hearing the key word or phrase, the voice circuitry can be active forrecognizing voice commands (e.g., for stylus tool, color, etc.). As anexample, voice circuitry may time out and revert to a waiting mode ornon-listening mode in response to passage of an amount of time withoutinteraction between a stylus and a display (e.g., passive or active),etc.

As an example, voice circuitry may become active in response toexecution of an application, an application being brought to aforeground, an application being utilized in a drawing mode, etc. Forexample, consider a note-taking application being executed and in theforeground (e.g., highest in a GUI stack, etc.).

As an example, voice circuitry may be activated using a button, asurface, etc., of a stylus. As an example, consider pressing a button toturn on voice control, holding a button down during utterance of a voicecommand, etc. As an example, a combination of factors can be utilizedfor activation (e.g., orientation of stylus with respect to display andbutton push, etc.).

As an example, a gesture may be utilized on a touch screen display toactivate use of voice commands and/or to de-activate use of voicecommands. For example, consider the example of FIG. 3 where the hand 303is holding the stylus 340 primarily between the forefinger and thethumb. In such an example, three fingers may be available for making aquick gesture (e.g., a two or three finger swipe, a multi-fingertiptouch, etc.) while the hand 303 maintains control over the stylus 340(e.g., can suitably hold the stylus 340). In such an example, thegesture may enable or disable control via voice commands. As an example,one gesture may enable and another, different gesture may disable. Insuch an example, when use of voice commands is not desired, one or moremicrophones may be in a non-listening mode, for example, to help assureuser privacy.

As mentioned, a voice command may simply be given as a color, forexample, voice input (e.g., audio input) that can be recognized as astylus color command. For example, if the blue pen is already selected,just saying “green” can cause the voice circuitry to select the greenpen. Where a drawing mode is not enabled, a voice command can assume atool, for example, consider a pen, a marker or a brush. As an example,where a drawing mode is already selected, the color can be changed andthe tool can be kept the same.

FIG. 4 shows an example of a method 410 that includes an execution block414 for executing an application with drawing capabilities, arecognition block 418 for recognizing input received via a microphone, aselection block 422 for selecting a color based on the recognized input,a reception block 426 for receiving input via a stylus, and a renderblock 430 for, responsive to the received input, via the executingapplication, rendering a graphic to a display using the selected color.

As an example, the method 400 can include during execution of anapplication with drawing capabilities, recognizing input received via amicrophone; selecting a color based on the recognized input; receivingdrawing input via a stylus; and, responsive to the received drawinginput, via the application, rendering a graphic to a display using theselected color.

FIG. 5 shows an example of a device 510 and an example of a stylus 540.

As an example, the device 510 may include one or more processors 512,memory 514, display circuitry 516, one or more network interfaces 518,power circuitry 520 (e.g., optionally including a power source such as abattery, etc.), voice circuitry 560, orientation circuitry 570 andbutton circuitry 580. As shown, the device 510 may be configured, forexample, as a watch, a phone, a tablet, a notebook, a desktop system, acamera, a GPS device or other device (e.g., operable to receive inputvia a stylus 540).

Various types of computing devices that include one or more processors,memory and a display may be characterized by one or more form factors.For example, various components of a computing device may haveassociated form factors (e.g., motherboard, chassis, etc.) and acomputing device itself may have an associated form factor (e.g.,notebook, tablet, etc.). As an example, a notebook computing device formfactor may be specified as including an “A portion” (e.g., that includesa display) and a “B portion” (e.g., that includes a keyboard) where thetwo portions are coupled via one or more hinges and where each portionmay be further specified by a length, a width and a height (e.g., ordepth). As an example, a tablet computing device form factor may bespecified by a length, a width and a height (e.g., or depth). As anexample, a tablet computing device form factor may be referred to, attimes, as a “pad” (e.g., or a “pad tablet”, etc.). As an example, awatch computing device form factor may be specified with respect to aband, for example, such as a wrist band. As an example, such a devicemay be considered a wearable device.

FIG. 6 shows an example of a stylus 640 that includes a nib 642,circuitry 643, side buttons 644-1 and 644-2, one or more batteries 645,an antenna or antennas 646, and a butt end button 648. As shown in theexample of FIG. 6, the stylus 640 may be separable to provide access toa chamber that can house the one or more batteries 645. For example, thestylus 640 may include two portions that form a joint where one portionincludes male threads and the other portion includes matching femalethreads.

As shown in the example of FIG. 6, the nib 642 may include a nib shaftthat can translate in a socket of the stylus 640. In such an example,pressure applied to the nib 642 may cause the nib shaft to translatewhere the circuitry 643 can sense the translation and output a signalthat represents pressure applied to the nib 642 (e.g., a pressure levelsignal).

In the example of FIG. 6, the buttons 644-1, 644-2 and 648 may beoperatively coupled to the circuitry 643. In such an example, actuationof one or more of the buttons 644-1, 644-2 and 648 may generate a signalor signals that the circuitry 643 can process, for example, to causeenergy emission by the antenna or antennas 646 of the stylus 640. Forexample, the button 644-1, upon actuation, may generate a signal thatcorresponds to a function where the circuitry 643 can process the signaland energize the antenna or antennas 646 to emit energy with one or morecharacteristics indicative of the function. In such an example, thebutton 644-2, upon actuation, may result in emission of energy with oneor more characteristics indicative of its function, which may differfrom that of the button 644-1. Further, where the button 648 has anassociated function, upon actuation, energy may be emitted with one ormore characteristics indicative of its function. As an example, acharacteristic of emitted energy may be a frequency characteristic, atiming characteristic, an amplitude characteristic, a spatialcharacteristic, etc.

As shown in the example of FIG. 6, the circuitry 643 may include a board660 that includes a processor 661 such as, for example, anapplication-specific integrated circuit (ASIC). As an example, the board660 may include a system-on-chip (SoC). For example, the board 660 mayinclude the processor 661, memory (e.g., one or more of ROM, RAM,EEPROM, flash memory) and other circuitry.

As shown in the example of FIG. 6, the board 660 may be operativelycoupled to circuitry 662-1, 662-2 and 662-N (e.g., where N may be zeroor an integer greater than 2). As an example, a stylus may include oneor more buttons with associated circuitry. As an example, circuitry maybe or include a switch. For example, a switch may be a pressuresensitive switch, an optical switch, a mechanical switch, etc. As anexample, the board 660 may include a bus where the circuitry 662-1,662-2 and 662-N is operatively coupled to the bus. As an example, such abus may be an I²C bus. In such an example, a button may include anaddress where, for example, actuation of the button generates a signaland an address (e.g., an identifier). In such an example, the processor661 may associate a received button signal with a particular button and,for example, an associated function of the button (e.g., a function thatdepends at least in part on orientation of the stylus 640).

As an example, the stylus 640 can include voice circuitry (e.g., as oneor more of the circuitries 662-1, 662-2, . . . , 662-N), which maydetect an utterance via one or more microphones 649, which may be at oneor more positions such as, for example, a position that may be closer tothe button 648 than the nib 642. Such a position or positions may besuitable for receipt of audio waves (e.g., longitudinal waves) in air asa user's hand may leave the aft portion of the stylus 640 relativelyexposed. As an example, one or more microphones may be positioned in anarea that includes a clip 647. In such an example, the clip 647 may actas a barrier that can help provide an air gap for receipt of audio wavesby one or more microphones. As an example, a stylus can include anopening or openings for one or more microphones where the openings maybe visible and/or coded such that a user holds the stylus in a mannerthat does not cover one or more of the openings. As an example, a stylusmay include one or more internal microphones with openings in a body ofthe stylus where the openings are arranged in a manner such that all ofthe openings are unlikely to be covered by a hand of a user during use.As mentioned, a stylus may include voice circuitry or voice circuitrymay be part of a computing device, a display device, etc.

As mentioned, voice circuitry can be utilized to select a color. As anexample, voice circuitry may be utilized to cause rendering of a menu, agraphic, etc. As an example, voice circuitry may be utilized to causerendering of a help graphic to a display. As an example, one or morebuttons of a stylus that includes a button or buttons may be utilized tocause rendering of a help graphic to a display. As shown in the exampleof FIG. 3, a help graphic can include colors and text where the text isfor names of the colors. Such a help graphic can assist a user when theuser desires changing a color, assigning a color, etc., whereby the usercan utter the name of the desired color such that a color can beselected and utilized when drawing via a stylus such as, for example,the stylus 640 of FIG. 6.

As an example, a device can include hand rejection circuitry, forexample, consider palm rejection circuitry. As an example, when a stylusis in proximity to a display, a device may trigger palm rejectioncircuitry. As an example, palm rejection circuitry may provideorientation information. For example, a region of a palm being“rejected” may be indicative of an orientation of a stylus; however, asit is possible to rest a palm while maneuvering a stylus to variousangles, information from palm rejection circuitry may be used inconjunction with information from one or more other sources.

As an example, a user may become aware of proximity and nib recognitionby a device via feedback. For example, when a nib is within a nibrecognition distance, a marker may be rendered to a display at aposition that corresponds to the position of the nib as best“recognized” by the device.

As an example, the stylus 640 of FIG. 6 may include BLUETOOTH™connectivity circuitry (e.g., BLUETOOTH™ 4.0, etc.), an erase functionfor the side button 644-1, a right-click function for the side button644-2 and an application initiation function for the butt end button648. As an example, the stylus 640 may be about 10 mm in diameter andinclude a length of about 140 mm. As an example, a stylus may includethe clip 647.

As an example, a method can include detecting orientation of a styluswith respect to a display and assigning a function to a button of thestylus based at least in part on the orientation. For example, one ormore of the buttons 644-1, 644-2 and 648 of the stylus 640 may beassigned a function based at least in part on orientation of the stylus640 with respect to a display of a device. For example, a stylus and adevice with a display may include orientation circuitry (see, e.g., theorientation circuitry 570 of FIG. 5).

The stylus 640 may have a surface area of about 42 square centimeters(e.g., about 6.5 square inches). As shown, the buttons 644-1 and 644-2are located with respect to a portion of the surface area thatcorresponds to an index finger tip region. For example, holding thestylus 640, a tip of an index finger may be rested in a region that isaxially located between the button 644-1 and the nib 642. From thisregion, the tip of the index finger may be slid, lifted, etc., to atleast in part cover the button 644-1 and/or the button 644-2. The stylus640 may be considered as including an ergonomically reasonable number ofside buttons actuatable via a tip of an index finger.

As an example, voice circuitry can include an analog to digitalconverter (ADC). For example, consider a microphone operatively coupledto an ADC that can output digitized audio data representative of audiowaves received by the microphone.

As an example, circuitry that can process digitized audio input mayinclude speech recognition (e.g., voice recognition) circuitry such as aspeech recognition engine (SR engine). As an example, an SR engine mayprovide for recognition and translation of spoken language into text(e.g., speech to text (STT)). An SR engine may require training where,for example, an individual speaker reads text or isolated vocabulary. Insuch an example, the SR engine may analyze the speaker's specific voiceand use it to fine-tune the recognition of that individual's speech,resulting in increased accuracy. Some types of SR engines may not usetraining and may be speaker independent (e.g., as opposed to speakerdependent).

Speech recognition applications may include, for example, voice userinterfaces such as voice dialing (e.g., “Call home”), call routing(e.g., “I would like to make a collect call”), appliance control, search(e.g., find a podcast where particular words were spoken), simple dataentry (e.g., entering a credit card number), preparation of structureddocuments (e.g., a radiology report), speech-to-text processing (e.g.,word processors or emails), and aircraft (e.g., direct voice input).

As an example, speech recognition may be performed using one or moreapplication programming interfaces (APIs). As an example, consider theAPPLE speech recognizer(https://developer.apple.com/documentation/speech). A portion of samplecode appears below for the APPLE speech recognizer:

func recognizeFile(url:NSURL) { guard let myRecognizer =SFSpeechRecognizer( ) else { // A recognizer is not supported for thecurrent locale return } if !recognizer.isAvailable( ) { // Therecognizer is not available right now return } let request =SFSpeechURLRecognitionRequest(url: url) recognizer.recognitionTask(with:request) { (result, error) in guard let result = result else { //Recognition failed, so check error for details and handle it return } ifresult.isFinal { // Print the speech that has been recognized so farprint(“Speech in the file is\(result.bestTranscription.formattedString)”) } }}

In the foregoing example, a request is made and speech that has beenrecognized is returned from the speech recognizer (e.g., SR engine,etc.). Such text may be in the form of a text string, which may be atext file, etc.

As an example, a speech API may perform speech recognition bycommunicating with one or more remote resources (e.g., a remote serverthat includes SR functionality) and/or by utilizing on-device SRfunctionality (e.g., a local SR engine, etc.).

As an example, results of speech recognition may be utilized by anapplication to perform one or more operations.

As an example, a speech recognition engine can be a speech-to-textengine. As an example, a speech recognition engine can be a patternmatching engine.

As an example, for various applications, an application programminginterface (API) can be accessed such as, for example, the UIAutomationAPI.

In the WINDOWS OS, the UIAutomation API specification includes variouscomponents such as a provider API, a client API, a UIAutomationCore.dlland an OIeacc.dll. The provider API is a set of COM interfaces that areimplemented by UI Automation providers. UI Automation providers areobjects that provide information about UI elements and respond toprogrammatic input. The client API is a set of COM interfaces thatenable client applications to obtain information about the UI and tosend input to controls. Client applications can use the UI AutomationCOM interfaces described in UI Automation Element Interfaces forClients. As to the UIAutomationCore.dll, it is a run-time library,sometimes called the UI Automation core, that handles communicationbetween providers and clients. As to the OIeacc.dll, it is a run-timelibrary for Microsoft Active Accessibility and the proxy objects. Thelibrary also provides proxy objects used by the Microsoft ActiveAccessibility to UI Automation Proxy to support Win32 controls.

Various approaches are available for using UI Automation, for example,an approach to create support for custom controls by using the providerAPI, and an approach to create client applications that use the UIAutomation core to communicate with, and retrieve information about, UIelements.

For the ANDROID OS, a UiAutomation class exists for interacting with aUI by simulation of user actions and introspection of screen content.The class relies on the platform accessibility APIs to introspect thescreen and to perform some actions on the remote view tree. It alsoallows injecting of arbitrary raw input events simulating userinteraction with keyboards and touch devices. The APIs exposed by thisclass are low-level to maximize flexibility when developing UI testautomation tools and libraries.

As an example, an artificial intelligence approach can be utilized foruncovering and discerning ribbons, menus, controls, etc. For example, anapproach may utilize an automation tool to explore behaviors of anapplication and how menus, etc., can be navigated and what options areavailable (e.g., can be exposed for control). In such an example, aframework for voice circuitry can be built for a particular applicationwhere a user may then utilize the framework to control various aspectsof a stylus for input via a display, a graphics tablet, etc. As anexample, an AI approach may utilize imagery such as rendered imagesand/or information suitable for consumption by graphics circuitry forrendering images (e.g., vector graphics, etc.).

As an example, a method can include use of an on-screen button and/or aphysical button (e.g., on a computing device, a graphics tablet, astylus, etc.) to trigger the start of a voice command (e.g.,push-to-talk). As mentioned, a wake-word or wake-phrase approach may beutilized.

As an example, a trigger-less approach may be utilized where context isused rather than a deliberate action of a user. For example, one or morecontextual factors may be utilized, such as, for example: a user hasnote-taking application open+/user is holding the stylus+/stylus is inhover range of the screen. For example, consider a stylus hovering overa display that has a GUI of an executing application rendered at ahighest level (e.g., active) such that voice circuitry is automaticallytriggered such that a user can utter “blue” or “thicker” or “eraser” andthe stylus tool and/or properties change.

As an example, consider a method that can utilize a cloud-based resourcesuch as, for example, GOOGLE cloud speech. In such an example, afunction can be called to recognize the speech using the GOOGLE cloudspeech engine to return output as a text (transcript), which may then beprocessed to change the color/tool for a stylus.

class GoogleCloudSpeechWrapper:   def_(——)init_(——)(self): # Set thecredentials for GCP   * * * #Instantiate a speech Engine self.client =speech.SpeechClient( ) def RecognizeFile(self, filename): transcripts =[ ] with io.open(filename, ‘rb’) as audioFile: content = audioFile.read() audio = speech.types.RecognitionAudio(content=content) config =speech.types.RecognitionConfig(encoding =enums.RecognitionConfig.AudioEncoding.LINEAR16, language_code=‘en-US’,max_alternatives = 25) response = self.client.recognize(config, audio)for result in response.results: #print(‘The number of alternates is: ’ +len(result.alternatives)) for alternate in result.alternatives:#print(‘Google returned string: ’ + alternative.transcript)transcripts.append({ “text”: alternate.transcript, “confidence”:alternate.confidence }) return transcripts

In the foregoing example, consider a voice command: “select black pen”.In such an example, the result therefrom can cause the following actionwith respect to selectable features of an executing application:“select” Color: “black” and Tool: “Pen”.

FIG. 7 shows an example of a method 710 that includes an execution block714 for voice circuitry running in the background on a computing device,which may include one or more network interfaces to access one or moreremote resources; an opening block 718 for a user opening an applicationthat supports tool/color change for a stylus where the stylus is notdocked (e.g., being used or otherwise ready for use) where such anapplication may be the POWER POINT application, the VISIO application,the ADOBE ILLUSTRATOR application, etc.); a notification block 722 fornotifying the user of the voice circuitry availability such that thevoice circuitry can receive a user's utterance of a voice command (e.g.,activation command, change command, etc.); a capture and process block726 where the voice circuitry captures the user's voice command andprocesses the captured voice command using a local and/or a remotespeech-to-text engine (e.g., local built-in, remote GOOGLE cloud speech,etc.); and a result block 730 for using a result from the capture andprocess block 726 to select a specific tool and/or a specific color forthe stylus for use in conjunction with the application.

FIG. 8 shows an example of a system 800 and various examples ofcircuitry 809, 819, 829, 849, 860, 880, 881, 882, 883, 884, 885, 886,and 887. As shown a user 801 can utter a word, a command, a phrase, etc.For example, consider the word “eraser” such that a stylus 840 as partof the system 800 can cause a device 810 to erase one or more renderingsas rendered to a display of the device 810. In such an example, thesystem 800 may utilize the voice circuitry 860 where the voice circuitry860 can convert audio signals into one or more types of information toinstruct the system 800.

FIG. 8 shows an example of the user 801 wearing a headset 809 with oneor more microphones, the device 810 as including one or more microphones819, and the stylus 840 as including one or more microphones 849. Asshown, the headset 809, the device 810 and/or the stylus 840 can includewireless circuitry 881 and/or wired circuitry 882. As to the wiredcircuitry 882, the device 810 can include a connector 829 such as anaudio connector, which may be utilized by a plug of a cord of a headset.For example, the headset 809 may be corded, include a cord, etc. As anexample, the headset 809 may include features for operation in awireless mode and/or a wired mode. As an example, a stylus may include acord with a plug that may be an audio type of plug, a USB plug, etc. Forexample, where the stylus 840 includes the one or more microphones 849,it may include a cord for transmission of at least audio signals to thedevice 810.

As an example, a system may include features that can provide forrelatively low latency operation. For example, a wired approach totransmission of audio signals may reduce latency when compared to awireless approach to transmission of audio signals. As to such audiosignals, they can be analog and/or digital. For example, a microphonecan be an analog microphone that can transmit audio signals in an analogform where, for example, circuitry can convert the analog audio signalsinto digital form (e.g., digital audio signals). As an example, amicrophone can include analog-to-digital conversion (ADC) circuitry suchthat the microphone can output digital audio signals.

As an example, the device 810 can include audio circuitry that canreceive analog audio signals and/or digital audio signals. Suchcircuitry can be operable in combination with a driver such as, forexample, a REALTEK high definition audio driver. As an example, audiocircuitry may be operable using a driver that can be operable using anoperating system that is executable to establish an operating systemenvironment. As an example, audio circuitry may include adigital-to-analog conversion (DAC) circuitry that can converts digitalsignal data into an analog format where, for example, an output signalmay be connected to an amplifier, headphones, or external device usingone or more interconnects. As an example, audio circuitry can include aline-in connector for an analog input from a source that may provide forreceipt of signal levels that can include signal levels higher thanlevels of a microphone.

In FIG. 8, the circuitry block 880 can include one or more types ofcircuitry, which, as mentioned, can include the wireless circuitry 881and/or the wired circuitry 882. In FIG. 8, the circuitry 883 is shown asbeing memory (e.g., memory circuitry), the circuitry 884 is shown asbeing stylus circuitry 884, the circuitry 885 is shown as being audiocircuitry 885, the circuitry 886 is shown as being logic circuitry 886and the circuitry 887 is shown as being application interface circuitry887. As an example, the stylus circuitry 884 and the audio circuitry 885can generate output or outputs that can be processed by the logiccircuitry 886. In such an example, the logic circuitry 886 can generateoutput or output that may, for example, be received by the applicationinterface circuitry 887. In FIG. 8, the headset 809 (e.g., a peripheral,a human input device, etc.) can include one or more types of circuitryof the circuitry block 880, the device 810 can include one or more typesof circuitry of the circuitry block 880, and/or the stylus 840 caninclude one or more types of circuitry of the circuitry block 880.

As an example, the application interface circuitry 887 can includememory and/or provide for access to memory that can store informationsuch as, for example, ink data. In such an example, the applicationinterface circuitry 887 can transmit ink data to a drawing applicationsuch that the drawing application utilizes the ink data, for example, toinstruct rendering by the device 810. In such an example, where the inkdata indicates a color, the drawing application can utilize the color toinstruct the device 810 to render one or more graphics, etc., using thecolor. As an example, where the ink data indicates an erasure, thedrawing application can utilize the erasure to instruct the device torender without one or more graphics, etc. (e.g., to erase a graphic,etc.).

FIG. 9 shows a listing of some examples of parameters 900 that may beincluded as ink data parameters (e.g., one or more stylus inkparameters, etc.). As an example, ink data can include one or moreparameters as listed in the Ink Markup Language (InkML) W3CRecommendation (see, e.g., InkML of 20 Sep. 2011, etc.). As shown inFIG. 9, ink data can include channel names, dimensions, defaults, etc.The example parameters 900 include various examples of channels alongwith channel interpretations.

In FIG. 9, the channels include X, Y, Z (e.g., Cartesian coordinates ofstylus on and/or above a “writing” surface), F (e.g., nib force), S(e.g., nib state as touching or not touching, etc.), B1 to Bn (e.g.,side button states), OTx (e.g., tilt angle along x-axis), OTy (e.g.,tilt angle along y-axis), OA (e.g., azimuth angle of stylus, yaw, etc.),OE (e.g., elevation angle of stylus, pitch, etc.), OR (e.g., rotationangle of stylus, etc.), C (e.g., color value as an RGB triple), CR, CG,CB (e.g., color values as in RGB color space), CC, CM, CY, CK (e.g.,color values of cyan, magenta, yellow, black in color space), A (e.g.,transparency), W (e.g., stroke width orthogonal to stroke), BW (e.g.,brush width), BH (e.g., brush height), and T (e.g., time of a sample,sample point, etc.). As to the A channel, it can provide transparency asan integer where, for example, the value 0 represents opaque ink and themaximum permissible value represents complete transparency.

As an example, a specification may provide for describing dynamicinformation about stylus movement (e.g., force (pressure), tilt, etc.)and/or contextual information about capturing devices (e.g., samplerate, resolution, uniformity, etc.).

As an example, ink data can be organized in terms of ink traces, whichmay include attributes such as, for example, color, width, writeridentification, stylus mode (e.g., eraser versus writing, etc.), etc. Asan example, various attributes may be captured using a <brush> element.Traces that share the same characteristics, such as being written withthe same brush, may be grouped together with a <traceGroup> element.

As an example, a system can include a corpus of terms that may providefor controlling ink data, directly and/or indirectly. As an example,where a user utters “red”, ink data can be generated via a method thatconverts sound waves produced by the user to ink data consumable by adrawing application. As to some example terms, consider coordinateterms, force terms (e.g., nib pressure, etc.), nib state terms (e.g.,touching or not touching), button terms, tilt terms, rotation terms,color terms, transparency terms, stroke terms, brush terms, time terms,etc.

As to nib state terms, consider a user that can utter “lift” to causeink data to be generated that causes a drawing application to beinstructed that a nib of a stylus is lifted when in actuality, it may bein contact with a drawing surface. In such an example, a user may wishto retain a particular position while deciding what to change as tostylus input (e.g., artistically, etc.). For example, consider a useruttering “lift” while keeping the stylus in contact (e.g., touching) adrawing surface and then uttering “brush width thicker” such that thestylus changes to a thicker brush width and then uttering “lower” suchthat the drawing application returns to a state where it considers thenib of the stylus to be in contact with the drawing surface to continuedrawing using the thicker brush width. In such an approach, the X,Yposition (e.g., and Z position) may remain constant; whereas, a menunavigation approach with multiple lifts, touches, etc., of a nib of thestylus may not guarantee that the user returns the nib to the exact sameX,Y position. As to other examples, consider a user uttering “increasepressure” or “increase force”, which may be uttered while drawing. Insuch an example, ink data may be generated that calls for renderingusing a different brush style (e.g., as if more pressure were beingapplied). In such an example, the user can maintain an applied amount ofpressure (e.g., force), which may be ergonomically advantageous for theuser (e.g., depending on a user's physiological condition, dexterity,etc.).

As shown in FIG. 9, a parameter can be a time parameter (e.g., a timechannel). In the example of FIG. 9, time (e.g., per the InkML standard)pertains to time of a sample point. As an example, where voice isutilized (e.g., audio input), a time may be utilized. For example,another time parameter may be utilized and/or an indicator utilized tomark a time (e.g., T) with an audio marker.

FIG. 10 shows an example of a system 1000 that includes a device 1010and a stylus 1040, an example of a method 1090 and an example of datastructures 1099, which may be stored in memory (see, e.g., the memory883 of FIG. 8, etc.). As shown in FIG. 10, a user can maneuver the nibof the stylus 1040 with respect to a drawing surface of the device 1010where the nib of the stylus 1040 can be touching the drawing surface ofthe device 1010, for example, to form a continuous curve with respect totime.

As shown, the continuous curve can be drawn over a span of time thatincludes time t1 as an intermediate time with a time thereafter denotedas t1+Δt. In the example of FIG. 10, the open circle and the filledcircle may be rendered as one or more options that can inform a user ofvarious times, for example, times associated with one or more actions.In the example of FIG. 10, the open circle is shown as being overlaid onthe continuous curve at the time t1, which can correspond to the user'sutterance of the term “blue”. For example, audio circuitry can provide atime stamp and/or mark a time (e.g., as a parameter time, channel time,etc.) responsive to receipt of sound waves by a microphone. Asmentioned, some latency can be involved in processing of a user'sutterance. In such an example, once the utterance is processed,rendering can be performed in accordance with the utterance where therendering can take into account the time of the utterance (e.g.,commencement of the utterance, etc.).

As to the method 1090, it includes a reception block 1092 for receivingaudio input, a process block 1094 for processing audio input, a setblock 1096 for setting a parameter (e.g., ink data, ink metadata, etc.),and a render block 1098 for rendering one or more graphics to a display(e.g., a drawing surface, etc.) according to the set parameter.

As to the example data structure 1099, at t1, it can include an x, yposition entry, a time and a color (e.g., red) and one or moresubsequent x, y positions, times and colors. As shown, at time t1+Δt,the data structure 1099 sets a parameter (e.g., a channel) to be “blue”where a method can include altering one or more prior entries of theparameter of the data structure 1099. For example, the data structure1099 entries “red” going back to time t1 can be changed to “blue”. Insuch an example, the recognition of “blue” (e.g., as a voice command,etc.) can operate as a trigger to cause one or more entries to bealtered based at least in part on the recognition of “blue”. As anexample, the data structure 1099 can be transmitted to a drawingapplication such that rendering of at least a portion of the continuouscurve is rendered in blue (e.g., blue ink).

As an example, a method can include determining a size of a datastructure, which may be in terms of samples, time (e.g., a time window),etc. In such an example, the size of the data structure may depend oncircuitry latency. For example, where latency is longer, the datastructure may be bigger (e.g., longer in time, more samples, etc.). Asan example, a drawing application can include interpolation featuresthat may interpolate between samples. As an example, a data structurecan include samples and/or interpolation parameters. For example, wherea user utters “straight line”, an interpolation may utilize a linearapproach for rendering between samples; whereas, where a user utters“curve”, an interpolation may utilize a spline approach for renderingbetween samples.

As an example, the data structure 1099 may be considered a buffer suchas an ink data buffer. As mentioned, the data structure 1099 may bestored in memory such as memory of a stylus, memory of a device, and/ormemory of a peripheral such as, for example, a headset. As an example, abuffer may commence upon receipt of sound waves by a microphone. Forexample, if no sound waves are received as to a term or terms associatedwith a stylus and a drawing application, ink data may be streameddirectly to a drawing application through utilization of the stylus,which can be a relatively low latency mode. Whereas, upon receipt of asound wave or sound waves of a term or terms, a buffer can beinstantiated, accessed, etc., to collect ink data to be held until theterm or terms are utilized to set a parameter or parameters, which canbe expected to introduce some additional latency. Once an utterance isprocessed to set a parameter or parameters, the buffer can flow to thedrawing application and the buffer de-instantiated to thereby return toa direct or more direct mode of operation (e.g., with lesser latency,etc.).

As an example, a mode of operation may include a buffer that can be anextensible buffer that can be small where no utterances are received andthat can be enlarged where an utterance is received or utterances arereceived. Such an extensible buffer may be a dynamic buffer that caninclude one or more ink data parameters based on speech recognition.

As mentioned, a method may implement a navigation approach using, forexample, UI automation, and/or a method may implement an ink dataapproach using, for example, a buffer application. As an example, abuffer application may utilize a clipboard feature of an operatingsystem, a drawing application, etc.

As an example, a clipboard can be a location in memory that can be usedas a temporary storage area for information. As an example, a bufferapplication can include executable instructions to utilize a clipboardto store ink data and/or to alter ink data. In such an example, thebuffer application may act to “copy and paste” the clipboard wherepasting is for transference of the contents (e.g., ink data) to adrawing application.

As an example, a system can include circuitry that can implement one ormore of a UI automation process and a buffer process with respect to oneor more stylus parameters where such processes can be modes of operationthat depend on speech recognition.

As an example, a method can include utilizing an ink data specification,which may be a standard specification and/or a custom specification. Asan example, in the InkML specification, in addition to pre-definedchannels, one or more other channels can be defined. As an example, anapplication may define one or more channels that may be utilized forpurposes of controlling one or more stylus parameters via voice. Asmentioned, a marker can be utilized to indicate when an utterance isreceived by a microphone and/or voice circuitry (e.g., audio circuitry,etc.). As an example, an application can provide for defining a channelthat may be a marker channel where the marker channel can be utilized tomark a time, mark a parameter (e.g., of another channel or channels,etc.), etc. For example, consider a channel that can define a bufferstarting point, a buffer reversion point, etc. In FIG. 10, the channelsat t1 may be marked using a marker channel such that when “blue” isrecognized as a voice command, the color channel values going back to t1can be altered from “red” to “blue”.

As to the InkML the time channel, it allows for detailed recording oftiming information for each sample point within a trace, which may beutilized for one or more purposes. The time channel can be specified asa regular channel or intermittent channel. When specified as a regularchannel, a single quote prefix can be used to record incremental timebetween successive points. The value of the time channel for a givensample point can be defined to be the timestamp of that point in theunits and frame of reference specified by a “respectTo” attribute of thetime channel that is defined in an associated “<traceFormat>” of thetrace. As to a time channel, its <channel> element can include a “units”attribute and a “respectTo” attribute where the units attribute givesthe units of the recorded time values and the respectTo attributedescribes the frame of reference for those recorded values. The value ofthe respectTo attribute is a reference to a time stamp. Where not given,the time channel values can appear as being relative to the beginningtimestamps of an individual trace in which they appear.

The following example defines a time channel whose values for a givenpoint are the relative to the timestamp referred to by #ts1:

<channel name=“T” type=“integer” units=“ms” respectTo=“#ts1” />

As mentioned, a scheme may specify a number of related channels such as,for example, direction-sensitive stylus force could be named FX, FY andFZ. As an example, a user may utter a phrase that causes a change in oneor more direction-sensitive stylus forces (e.g., increase FY, decreaseFX, increase FX, FY and FZ, etc.).

As an example, a system can include one or more features that canrecognize a user. For example, a system can include circuitry that canrecognize voice input of a user A and a different user B. In such anexample, two users may be operating in a common environment where bothuser A and user B can utilize voice commands for stylus control, etc.

As an example, ink data may be stored, transmitted, received, etc. As anexample, one or more application programming interfaces (APIs) may beutilized for storage, transmission and/or reception of ink data.

As an example, an API can provide for sending/receiving ink content,optionally in addition to native content from an application. Forexample, consider an OneNote API that provides such features, which canoperate with various accounts (e.g., individual, organizational, etc.).As an example, a voice command corpus can include one or more terms,phrases, etc., for use of such an API.

As an example, consider OneNote page content and use of a POST ˜/pagesAPI. In such an example, ink content can be written by including anotherpart in a multipart request with Content-Type “application/inkml+xml”and content name “presentation-onenote-inkml”. Consider the followingexample request, which for sake of brevity herein is less than 60 linesas presented below:

POST https://www.onenote.com/api/beta/me/notes/pages HTTP/1.1Content-Type: multipart/form-data; boundary=soifhihofh Content-Length:7802; Expect: 100-continue; Content-Type: text/html Content-Disposition:form-data; name=presentation  <html> <head> <title>Page withInkML</title> </head> </html>  Content-Type: application/inkml+xmlContent-Disposition: form-data; name=presentation-onenote-inkml <?xmlversion=“1.0” encoding=“utf-8”?> <inkml:inkxmlns:emma=“http://www.w3.org/2003/04/emma”xmlns:msink=“http://schemas.microsoft.com/ink/2010/main”xmlns:inkml=“http://www.w3.org/2003/InkML“>  <inkml:definitions> <inkml:context xml:id=“ctxCoordinatesWithPressure”>   <inkml:inkSourcexml:id=“inkSrcCoordinatesWithPressure”> <inkml:traceFormat> <inkml:channel name=“X” type=“integer” max=“32767” units=“himetric”/> <inkml:channel name=“Y” type=“integer” max=“32767” units=“himetric”/> <inkml:channel name=“F” type=“integer” max=“32767” units=“dev”/></inkml:traceFormat> <inkml:channelProperties>  <inkml:channelPropertychannel=“X” name=“resolution” value=“1” units=“1/himetric”/> <inkml:channelProperty channel=“Y” name=“resolution” value=“1”units=“1/himetric”/>  <inkml:channelProperty channel=“F”name=“resolution” value=“1” units=“1/dev”/> </inkml:channelProperties>  </inkml:inkSource>  </inkml:context>  <inkml:brush xml:id=“br0”>  <inkml:brushProperty name=“width” value=“100” units=“himetric”/>  <inkml:brushProperty name=“height” value=“100” units=“himetric”/>  <inkml:brushProperty name=“color” value=“#0000FF”/>  <inkml:brushProperty name=“transparency” value=“0”/>  <inkml:brushProperty name=“tip” value=“ellipse”/>  <inkml:brushProperty name=“rasterOp” value=“copyPen”/>  <inkml:brushProperty name=“ignorePressure” value=“false”/>  <inkml:brushProperty name=“antiAliased” value=“true”/>  <inkml:brushProperty name=“fitToCurve” value=“false”/>  </inkml:brush></inkml:definitions> <inkml:traceGroup>  <inkml:trace xml:id=“st0”contextRef=“#ctxCoordinatesWithPressure” brushRef=“#br0”>1423 7569 3456,1468 7288 7040, . . . </inkml:trace>  <inkml:trace xml:id=“st1”contextRef=“#ctxCoordinatesWithPressure” brushRef=“#br0”>12105 140142560, 11649 14071 3840, . . . </inkml:trace>  <inkml:trace xml:id=“st2”contextRef=“#ctxCoordinatesWithPressure” brushRef=“#br0”>9674 7756 5632,9350 7776 8448, 8993 7925 11904, . . . </inkml:trace>  <inkml:tracexml:id=“st3” contextRef=“#ctxCoordinatesWithPressure”brushRef=“#br0”>8190 7100 3328, 7857 7096 4992, 7592 7062 6144, . . .</inkml:trace>  <inkml:trace xml:id=“st4”contextRef=“#ctxCoordinatesWithPressure” brushRef=“#br0”>8739 9547 1152,8622 9531 1664, . . . </inkml:trace>  <inkml:trace xml:id=“st5”contextRef=“#ctxCoordinatesWithPressure” brushRef=“#br0”>11701 133994480, 11644 13267 6656, . . . 256</inkml:trace>  </inkml:traceGroup></inkml:ink>

As an example, a specification may define channels to be used todescribe ink traces in one or more coordinate systems, to describe oneor more compression schemes, to provide supplementary information, etc.As an example, a channel or channels may describe properties of digitalink, may describe information in an ink stream, etc. As an example, adefined channel may provide information about changing lightingconditions. As an example, one or more channels may provide forergonomic improvements for a user, which can include voice activatedergonomic improvements.

FIG. 11 shows an example of a method 1100 that includes a recognitionblock 1114 for, during execution of an application with drawingcapabilities, recognizing input received via a microphone; a set block1118 for setting a stylus ink parameter based on the recognized input; areception block 1122 for receiving drawing input via a stylus; and arender block 1126 for, via the application, rendering a graphical userinterface to a display according to the stylus ink parameter and thedrawing input.

As shown in the example of FIG. 3, the GUI 320 includes a region 321where various ink is rendered, for example, according to ink data. Asexplained, ink data can be in one or more formats and can be generated,adjusted, etc., using one or more voice commands. As explained, a methodcan include utilizing a navigation approach (e.g., UI automation, etc.)or an ink data approach. As an example, a method may utilize anavigation approach for some types of voice commands and may utilize anink data approach for some types of voice commands.

As an example, a method can include, during execution of an applicationwith drawing capabilities, recognizing input received via a microphone;setting a stylus ink parameter based on the recognized input; receivingdrawing input via a stylus; and, via the application, rendering agraphical user interface to a display according to the stylus inkparameter and the drawing input. In such an example, the recognizing andthe receiving can overlap in time. For example, recognizing inputreceived via a microphone can occur during receiving drawing input via astylus. As an example, one or more graphics, etc., may be rendered,re-rendered, etc., responsive to recognizing input received via amicrophone. For example, at least a portion of a line drawn using anapplication with drawing capabilities via a stylus interacting with acomputing device (e.g., a touchscreen display, etc.), can changeresponsive to recognition of input received via a microphone where thechange can be according to a stylus ink parameter or stylus inkparameters. While a line is mentioned, one or more types of graphics(e.g., primitives, vector graphics, other types of graphics, etc.) maychange responsive to recognition of input received via a microphone.

As an example, drawing input received via a stylus can be tailored,controlled, etc., via input received via a microphone where, in such anexample, the drawing input can be in the form of ink data, which can beat least in part based on one or more stylus ink parameters.

As an example, a method can include setting a stylus ink parameter basedon the recognized input where the setting includes applying the stylusink parameter to at least a portion of drawing input received prior torecognizing input received via a microphone.

As an example, a method can include generating a marker responsive toreceiving input via a microphone where the marker indicates a time for aportion of drawing input received prior to recognizing the inputreceived via a microphone. In such an example, the input can be a word,a phrase, a number, etc., which may be from a human utterance that spansa period in time. In such an example, an increase in signal amplitude ofthe microphone may trigger generation of the marker where, depending onthe nature of sound that caused the increase in the signal amplitude,the marker may be deemed relevant as being related to drawing or not,which for the latter, the marker may be ignored or discarded. As anexample, a method can include applying a stylus ink parameter to atleast a portion of drawing input.

As an example, a stylus ink parameter can be or include a colorparameter. For example, consider a method where rendering renders agraphical user interface to a display with a graphic that includes acolor specified by the color parameter. In such an example, the graphicmay include at least one other color (e.g., consider a line thatincludes a portion of one color and a different portion of another colorwhere the line may be a contiguous line, optionally referred to as amulti-color line or multi-color graphic). As an example, a method caninclude recognizing input received via a microphone in a manner thatoccurs during receiving drawing input. As explained, a user may move astylus across an input device (e.g., a digitizer display, a touchscreen,etc.) and make one or more utterances while moving the stylus such thata graphic is or graphics are rendered according to the one or moreutterances.

As an example, a method can include setting a stylus ink parameter basedon recognized input via navigating a menu of an application withoutrendering the menu to the display. As an example, where recognition maybe uncertain, a method may include rendering a menu such as, forexample, a hint menu, to a display. In such an example, the menu may berelatively small and may be rendered in a manner that does not obscure adrawing. For example, such a menu may be rendered along a ribbon regionand may include selectable graphical controls or not (e.g., consider amenu or legend that can remind a user of various parameters such ascolor parameters, etc.).

As an example, a method can include setting a stylus ink parameter basedon recognized input where the setting includes issuing at least one userinterface automation application programming interface call fornavigating a menu of an application that includes drawing capabilities.Such an approach can be a UI automation approach, which may utilize atree type of structure or another type of structure to match anutterance with a stylus ink parameter, etc.

As an example, a method can include, responsive to receipt of a helpcommand, rendering a menu of colors and names of the colors to thedisplay. In such an example, the menu of colors and names of the colorscan be a non-native menu, a menu that is not native to an applicationwith drawing capabilities. For example, the application may include anative menu that can be rendered to a display, which may overlap orobscure a drawing panel (e.g., window) and that includes variousselectable color graphical controls; whereas, a non-native menu may besmaller in area than the native menu and may be a hint menu that may ormay not include selectable graphical controls. As an example, a hintmenu can be a rendered graphic that is not a graphical control. Such ahint menu may provide information to a user such that the user knowswhat may be uttered to achieve a desired result (e.g., as to one or morestylus ink parameters, etc.).

As an example, a method can include setting a stylus ink parameter basedon recognized input where the setting includes setting an InkML channelvalue.

As an example, a stylus ink data parameter can be a brush parameter. Forexample, a stylus may be considered to be a brush, akin to a paintbrushand/or other drawing utensil, which may be customizable via one or morebrush parameters, etc.

As an example, a stylus can include one or more microphones. In such anexample, a stylus may receive sound waves from vocal utterances of ahuman where one or more of the vocal utterances may correspond to one ormore stylus ink parameters. As an example, a microphone of a stylus maybe utilized in a method where the method includes activating themicrophone responsive to receipt of input by the stylus.

As an example, a method can include recognizing input received via amicrophone via transmitting audio data to a speech recognition engine.For example, consider a method that can transmit audio data as a file,files, a stream, etc., to a speech recognition engine, which may belocal or remote. As an example, a local device can include a speechrecognition engine. As an example, a remote device can include a speechrecognition engine where the remote device includes one or more networkinterfaces that can receive audio data and recognize one or morecommands within the received audio data. As an example, audio data maybe time stamped. As an example, a time stamp may be utilized for one ormore purposes, which may optionally include revising one or morerendered graphics according to a time of a time stamp. In such anexample, a revision may be made in a manner that accounts for latency inoperation of a speech recognition engine such that a user's intent indrawing is preserved.

As an example, one or more computer-readable storage media can includeprocessor-executable instructions executable by a computing system toinstruct the computing system to: during execution of an applicationwith drawing capabilities, recognize input received via a microphone;set a stylus ink parameter based on the recognized input; receivedrawing input via a stylus; and, via the application, render a graphicaluser interface to a display according to the stylus ink parameter andthe drawing input.

As an example, a system can include a computing device that includes adisplay; a stylus; a microphone; and voice circuitry that receives audiosignals via the microphone to set one or more stylus ink parameterswithout rendering a stylus ink parameters menu to the display, where thecomputing device renders a graphical user interface to the displayutilizing the set one or more stylus ink parameters. In such an example,the graphical user interface can be or include a drawing panel where,for example, the stylus can draw, electronically, on the drawing panelakin to a pencil, a pen, a brush, etc., on paper, canvas, other mediumor media, etc.

The term “circuit” or “circuitry” is used in the summary, description,and/or claims. As is well known in the art, the term “circuitry”includes all levels of available integration, e.g., from discrete logiccircuits to the highest level of circuit integration such as VLSI, andincludes programmable logic components programmed to perform thefunctions of an embodiment as well as general-purpose or special-purposeprocessors programmed with instructions to perform those functions. Suchcircuitry may optionally rely on one or more computer-readable mediathat includes computer-executable instructions. As described herein, acomputer-readable medium or a machine-readable medium may be a storagedevice (e.g., a memory card, a storage disk, etc.) and referred to as acomputer-readable storage medium or a machine-readable storage mediumthat is not a carrier wave (e.g., a non-transitory medium).

While various examples of circuits or circuitry have been discussed,FIG. 12 depicts a block diagram of an illustrative computing system1200. As an example, the system 1200 may be a system of components thatmay be included in a device. As an example, one or more of the devices510 can include one or more of the features of the system 1200. Thesystem 1200 may be a desktop computer system, such as one of theTHINKCENTER® or THINKPAD® series of personal computers sold by Lenovo(US) Inc. of Morrisville, N.C., or a workstation computer, such as theTHINKSTATION®, which are sold by Lenovo (US) Inc. of Morrisville, N.C.As an example, a monitor or display device may include features such asone or more of the features included in one of the LENOVO® IDEACENTRE®or THINKCENTRE® “all-in-one” (A10) computing devices (e.g., sold byLenovo (US) Inc. of Morrisville, N.C.). For example, the LENOVO®IDEACENTRE® A720 computing device includes an Intel® Core i7 processor,a 27 inch frameless multi-touch display (e.g., for HD resolution of1920×1080), a NVIDIA® GeForce® GT 630M 2 GB graphics card, 8 GB DDR3memory, a hard drive, a DVD reader/writer, integrated Bluetooth® and802.11b/g/n Wi-Fi®, USB connectors, a 6-in-1 card reader, a webcam, HDMIin/out, speakers, and a TV tuner. As apparent from the descriptionherein, mobile device, a satellite, a base, a server or other machinemay include other features or only some of the features of the system1200. As described herein, a device may include at least some of thefeatures of the system 1200.

As shown in FIG. 12, the system 1200 includes a so-called chipset 1210.A chipset refers to a group of integrated circuits, or chips, that aredesigned to work together. Chipsets are usually marketed as a singleproduct (e.g., consider chipsets marketed under the brands INTEL®, AMD®,etc.).

In the example of FIG. 12, the chipset 1210 has a particulararchitecture, which may vary to some extent depending on brand ormanufacturer. The architecture of the chipset 1210 includes a core andmemory control group 1220 and an I/O controller hub 1250 that exchangeinformation (e.g., data, signals, commands, etc.) via, for example, adirect management interface or direct media interface (DMI) 1242 or alink controller 1244. In the example of FIG. 12, the DMI 1242 is achip-to-chip interface (sometimes referred to as being a link between a“northbridge” and a “southbridge”).

The core and memory control group 1220 include one or more processors1222 (e.g., single core or multi-core) and a memory controller hub 1226that exchange information via a front side bus (FSB) 1224. As describedherein, various components of the core and memory control group 1220 maybe integrated onto a single processor die, for example, to make a chipthat supplants the conventional “northbridge” style architecture. As anexample, a chipset may be configured as a platform controller hub (PCH),for example, the memory controller hub (MCH) 1226 may be considered anorthbridge and the I/O controller hub (ICH) 1250 may be considered asouthbridge where the MCH 1226 and the ICH 1250 may be components of theplatform controller hub (PCH) (e.g., a PCH architecture).

As shown in FIG. 12, the memory controller hub 1226 interfaces withmemory 1240. For example, the memory controller hub 1226 may providesupport for DDR SDRAM memory (e.g., DDR, DDR2, DDR3, etc.). In general,the memory 1240 is a type of random-access memory (RAM). It is oftenreferred to as “system memory”. As an example, one or more processorsmay include circuitry for memory access, for example, to access systemmemory.

The memory controller hub 1226 further includes a low-voltagedifferential signaling interface (LVDS) 1232. The LVDS 1232 may be aso-called LVDS Display Interface (LDI) for support of a display device1292 (e.g., a CRT, a flat panel, a projector, etc.). A block 1238includes some examples of technologies that may be supported via theLVDS interface 1232 (e.g., serial digital video, HDMI/DVI, displayport). The memory controller hub 1226 also includes one or morePCI-express interfaces (PCI-E) 1234, for example, for support ofdiscrete graphics 1236. Discrete graphics using a PCI-E interface hasbecome an alternative approach to an accelerated graphics port (AGP).For example, the memory controller hub 1226 may include a 16-lane (x16)PCI-E port for an external PCI-E-based graphics card. A system mayinclude AGP or PCI-E for support of graphics (e.g., rendering ofgraphics to a display, etc.).

The I/O controller hub 1250 includes a variety of interfaces. Theexample of FIG. 12 includes a SATA interface 1251, one or more PCI-Einterfaces 1252 (optionally one or more legacy PCI interfaces), one ormore USB interfaces 1253, a LAN interface 1254 (more generally a networkinterface), a general purpose I/O interface (GPIO) 1255, a low-pin count(LPC) interface 1270, a power management interface 1261, a clockgenerator interface 1262, an audio interface 1263 (e.g., for speakers1294), a total cost of operation (TCO) interface 1264, a systemmanagement bus interface (e.g., a multi-master serial computer businterface) 1265, and a serial peripheral flash memory/controllerinterface (SPI Flash) 1266, which, in the example of FIG. 12, includesBIOS 1268 and boot code 1290. With respect to network connections, theI/O controller hub 1250 may include integrated gigabit Ethernetcontroller lines multiplexed with a PCI-E interface port. Other networkfeatures may operate independent of a PCI-E interface.

The interfaces of the I/O controller hub 1250 provide for communicationwith various devices, networks, etc. For example, the SATA interface1251 provides for reading, writing or reading and writing information onone or more drives 1280 such as HDDs, SDDs or a combination thereof. TheI/O controller hub 1250 may also include an advanced host controllerinterface (AHCI) to support one or more drives 1280. The PCI-E interface1252 allows for wireless connections 1282 to devices, networks, etc. TheUSB interface 1253 provides for input devices 1284 such as keyboards(KB), one or more optical sensors, a touchpad, mice and various otherdevices (e.g., cameras, phones, storage, media players, etc.). On ormore other types of sensors may optionally rely on the USB interface1253 or another interface (e.g., I²C, etc.).

In the example of FIG. 12, the LPC interface 1270 provides for use ofone or more ASICs 1271, a trusted platform module (TPM) 1272, a superI/O 1273, a firmware hub 1274, BIOS support 1275 as well as varioustypes of memory 1276 such as ROM 1277, Flash 1278, and non-volatile RAM(NVRAM) 1279. With respect to the TPM 1272, this module may be in theform of a chip that can be used to authenticate software and hardwaredevices. For example, a TPM may be capable of performing platformauthentication and may be used to verify that a system seeking access isthe expected system.

The system 1200, upon power on, may be configured to execute boot code1290 for the BIOS 1268, as stored within the SPI Flash 1266, andthereafter processes data under the control of one or more operatingsystems and application software (e.g., stored in system memory 1240).An operating system may be stored in any of a variety of locations andaccessed, for example, according to instructions of the BIOS 1268.

Again, as described herein, a satellite, a base, a server or othermachine may include fewer or more features than shown in the system 1200of FIG. 12. Further, the system 1200 of FIG. 12 is shown as includingcell phone circuitry 1295, which may include GSM, CDMA, etc., types ofcircuitry configured for coordinated operation with one or more of theother features of the system 1200. Also shown in FIG. 12 is batterycircuitry 1297, which may provide one or more battery, power, etc.,associated features (e.g., optionally to instruct one or more othercomponents of the system 1200). As an example, a SMBus may be operablevia a LPC (see, e.g., the LPC interface 1270), via an I²C interface(see, e.g., the SM/I²C interface 1265), etc.

Although examples of methods, devices, systems, etc., have beendescribed in language specific to structural features and/ormethodological acts, it is to be understood that the subject matterdefined in the appended claims is not necessarily limited to thespecific features or acts described. Rather, the specific features andacts are disclosed as examples of forms of implementing the claimedmethods, devices, systems, etc.

What is claimed is:
 1. A method comprising: during execution of anapplication with drawing capabilities, recognizing input received via amicrophone; setting a stylus ink parameter based on the recognizedinput; receiving drawing input via a stylus; and via the application,rendering a graphical user interface to a display according to thestylus ink parameter and the drawing input.
 2. The method of claim 1,wherein the recognizing and the receiving overlap in time.
 3. The methodof claim 1, wherein the setting comprises applying the stylus inkparameter to at least a portion of the drawing input received prior tothe recognizing.
 4. The method of claim 1, comprising generating amarker responsive to receiving the input via the microphone wherein themarker indicates a time for a portion of the drawing input receivedprior to the recognizing.
 5. The method of claim 4, comprising applyingthe stylus ink parameter to the portion of the drawing input.
 6. Themethod of claim 1, wherein the stylus ink parameter comprises a colorparameter.
 7. The method of claim 6, wherein the rendering renders thegraphical user interface to the display with a graphic that comprises acolor specified by the color parameter.
 8. The method of claim 7,wherein the graphic comprises at least one other color.
 9. The method ofclaim 8, wherein the recognizing occurs during the receiving of thedrawing input.
 10. The method of claim 1, wherein the setting comprisesnavigating a menu of the application without rendering the menu to thedisplay.
 11. The method of claim 1, wherein the setting comprisesissuing at least one user interface automation application programminginterface call for navigating a menu of the application.
 12. The methodof claim 1, comprising, responsive to receipt of a help command,rendering a menu of colors and names of the colors to the display. 13.The method of claim 12, wherein the menu of colors and names of thecolors is not native to the application.
 14. The method of claim 1,wherein the setting comprises setting an InkML channel value.
 15. Themethod of claim 1, wherein the stylus ink data parameter comprises abrush parameter.
 16. The method of claim 1, wherein the stylus comprisesthe microphone.
 17. The method of claim 16, comprising activating themicrophone responsive to receipt of input by the stylus.
 18. The methodof claim 1, wherein the recognizing comprises transmitting audio data toa speech recognition engine.
 19. One or more computer-readable storagemedia comprising processor-executable instructions executable by acomputing system to instruct the computing system to: during executionof an application with drawing capabilities, recognize input receivedvia a microphone; set a stylus ink parameter based on the recognizedinput; receive drawing input via a stylus; and via the application,render a graphical user interface to a display according to the stylusink parameter and the drawing input.
 20. A system comprising: acomputing device that comprises a display; a stylus; a microphone; andvoice circuitry that receives audio signals via the microphone to setone or more stylus ink parameters without rendering a stylus inkparameters menu to the display, wherein the computing device renders agraphical user interface to the display utilizing the set one or morestylus ink parameters.